﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum СпособыРасчетаКомиссионногоВознаграждения
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ) Не рассчитывается (указывается вручную)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"17f53b57-01a3-41ad-a35d-18a63d055c71\", \"Представление\":\"НеРассчитывается\"}")]
		НеРассчитывается = 0,//Не рассчитывается
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"dc183027-a0f1-497f-a0d5-fc6e6f8190e0\", \"Представление\":\"ПроцентОтПрибыли\"}")]
		ПроцентОтПрибыли = 1,//Процент от разности сумм продажи и поступления
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"d872d9a6-ec03-471d-819a-18e16bb78c22\", \"Представление\":\"ПроцентОтСуммыПродажи\"}")]
		ПроцентОтСуммыПродажи = 2,//Процент от суммы продажи
	}
	public static partial class СпособыРасчетаКомиссионногоВознаграждения_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ) Не рассчитывается (указывается вручную)
		///</summary>
		public static readonly Guid НеРассчитывается = new Guid("a6185da3-053d-715c-41ad-01a317f53b57");//Не рассчитывается
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПроцентОтПрибыли = new Guid("6efcd5a0-816f-e090-497f-a0f1dc183027");//Процент от разности сумм продажи и поступления
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПроцентОтСуммыПродажи = new Guid("e1189a81-b76b-228c-471d-ec03d872d9a6");//Процент от суммы продажи
		public static СпособыРасчетаКомиссионногоВознаграждения Получить(this СпособыРасчетаКомиссионногоВознаграждения Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыРасчетаКомиссионногоВознаграждения Получить(this СпособыРасчетаКомиссионногоВознаграждения Значение, Guid Ссылка)
		{
			if(Ссылка == НеРассчитывается)
			{
				return СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается;
			}
			else if(Ссылка == ПроцентОтПрибыли)
			{
				return СпособыРасчетаКомиссионногоВознаграждения.ПроцентОтПрибыли;
			}
			else if(Ссылка == ПроцентОтСуммыПродажи)
			{
				return СпособыРасчетаКомиссионногоВознаграждения.ПроцентОтСуммыПродажи;
			}
			return СпособыРасчетаКомиссионногоВознаграждения.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыРасчетаКомиссионногоВознаграждения Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыРасчетаКомиссионногоВознаграждения Значение)
		{
			switch (Значение)
			{
				case СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается: return НеРассчитывается;
				case СпособыРасчетаКомиссионногоВознаграждения.ПроцентОтПрибыли: return ПроцентОтПрибыли;
				case СпособыРасчетаКомиссионногоВознаграждения.ПроцентОтСуммыПродажи: return ПроцентОтСуммыПродажи;
			}
			return Guid.Empty;
		}
	}
}